package com.snow.conditions;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 查询条件字段
 *
 * @author by 13119
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface QueryConditionField {
    /**
     * 对应的实体字段
     */
    String value() default "";

    /**
     * 查询条件
     */
    ConditionType type() default ConditionType.equal;

    /**
     * 条件
     */
    boolean groupCondition() default false;

    DayTimeOffset dateOffset() default DayTimeOffset.NONE;

    /**
     * 子查询
     */
    boolean subQuery() default false;

    Class<?> subFrom() default Object.class;

    Class<?> subFieldType() default Integer.class;

    String subField() default "";

    ConditionType subQueryType() default ConditionType.equal;

    /**
     * 连接操作符：AND OR
     */
    LinkType link() default LinkType.AND;


}
